#ifndef ENGINE_H_INCLUDED
#define ENGINE_H_INCLUDED

#include "song.h"
#include "tabview.h"
using namespace std;

class tabView;

class engine : public wxWindow {
  public:
    // functions
    engine(song *theSongInit, tabView *theTabViewInit);     // constructor
    ~engine();
    void onTimer1Timer(wxTimerEvent& event);
    void onTimer2Timer(wxTimerEvent& event);
    void reset();
    void start();
    void stop();
    // variables
    wxGauge   *theGauge;
    wxTimer   timer1; // notes
    wxTimer   timer2; // counts
    song      *theSong;
    tabView   *theTabView;
    wxTextCtrl *theLog;
    int       noteNr;
    signed int countNr;
    int       countDuration;
    bool sound;
    bool playing;
    wxSpinCtrl *spnTreshold;

    static const long ID_TIMER1;
    static const long ID_TIMER2;
    DECLARE_EVENT_TABLE()
};

#endif // ENGINE_H_INCLUDED
